/**
 给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
 你可以假设数组是非空的，并且给定的数组总是存在多数元素。

 */


/** 排序
 * 
 * 数组中间的元素总是“多数元素”，毕竟它长度 > ⌊ n/2 ⌋。
 * 
 */

let nums = [2, 2, 1, 1, 1, 2, 2];

var majorityElement = function(nums) {
    return nums.sort()[parseInt(nums.length / 2)];
};


/** map
 * 
 */

var majorityElement1 = function(nums) {
    let map = new Map();
    let size = nums.length
    for (let i = 0; i < size; i++) {
        if (map.has(nums[i])) map.set(nums[i], map.get(nums[i]) + 1);
        else map.set(nums[i], 1);
    }
    console.log(map)
    for (let items of map.entries()) {
        if (items[1] > parseInt(size / 2)) return items[0];
    }

};

console.log(majorityElement1([3, 2, 3, 3]))